package top.z.work.module.system.entity.table;

import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.table.TableDef;

import java.io.Serial;

/**
 * 登录日志 表定义层。
 *
 * @author zaoangod
 * @since 2024-07-25
 */
public class SystemLoginInfoTableDef extends TableDef {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 登录日志
     */
    public static final SystemLoginInfoTableDef SYSTEM_LOGIN_INFO = new SystemLoginInfoTableDef();

    /**
     * 登录状态(0.成功;1.失败)
     */
    public final QueryColumn STATUS = new QueryColumn(this, "status");

    /**
     * 数据ID
     */
    public final QueryColumn IDENTITY = new QueryColumn(this, "identity");

    /**
     * 登录账号
     */
    public final QueryColumn USERNAME = new QueryColumn(this, "username");

    /**
     * 登录IP
     */
    public final QueryColumn IP_ADDRESS = new QueryColumn(this, "ip_address");

    /**
     * 创建时间
     */
    public final QueryColumn LOGIN_TIME = new QueryColumn(this, "login_time");

    /**
     * 操作信息
     */
    public final QueryColumn OPERATION = new QueryColumn(this, "operation");

    /**
     * 用户代理
     */
    public final QueryColumn USER_AGENT = new QueryColumn(this, "user_agent");

    /**
     * 所有字段。
     */
    public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*");

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{IDENTITY, USERNAME, IP_ADDRESS, USER_AGENT, STATUS, OPERATION, LOGIN_TIME};

    public SystemLoginInfoTableDef() {
        super("", "system_login_info");
    }

}
